package org.example.http;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;

public interface HttpServletResponse {
    /**
     * 获取字符号输出流
     * @return
     */
    PrintWriter getWriter();
    /**
     * 获取字节输出流
     * @return
     */
    OutputStream getOutputStream();
    /**
     * 如果响应还未被提交，设置被发送到客户端的响应的内容类型。

     * 参考: HTTP Content-type 对照表
     * @param type
     */
    void setContentType(String type);
    /**
     * 设置响应设置状态码。
     * @param status
     * @param msg
     */
    void setStatus(int status, String msg);
    /**
     * 设置一个带有给定的名称和值的响应报头。
     * @param name
     * @param value
     */
    void setHeader(String name, String value);
    /**
     * 强制任何在缓冲区中的内容被写入到客户端。
     */
    void flushBuffer() throws IOException;
    /**
     * 使用指定的重定向位置 URL 发送临时重定向响应到客户端。
     * @param location
     */
    void sendRedirect(String location);
    /**
     * 把指定的 cookie 添加到响应。
     * @param cookie
     */
    void addCookie(Cookie cookie);
}